package com.nuist.springioc;

import com.nuist.springioc.component.UserComponent;
import com.nuist.springioc.config.BeanConfig;
import com.nuist.springioc.config.UserConfig;
import com.nuist.springioc.controller.UserController;
import com.nuist.springioc.controller.UserController2;
import com.nuist.springioc.controller.UserController3;
import com.nuist.springioc.model.UserInfo;
import com.nuist.springioc.repository.UserRepository;
import com.nuist.springioc.service.UserService;
import org.apache.catalina.User;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;

@SpringBootApplication
public class SpringIocApplication {

    public static void main(String[] args) {
        ApplicationContext context = SpringApplication.run(SpringIocApplication.class, args);
//        // 方式1
//        UserController userController = context.getBean(UserController.class);
//        userController.sayHello();
//        // 方式2
//        UserController userController2 = (UserController) context.getBean("userController");
//        userController2.sayHello();
//        //
//        UserController userController3 = context.getBean("userController", UserController.class);
//        userController3.sayHello();
//
//        System.out.println(userController);
//        System.out.println(userController2);
//        System.out.println(userController3);
//        UserService userService1 = context.getBean(UserService.class);
//        UserService userService2 = (UserService) context.getBean("userService");
//        UserService userService3 = (UserService) context.getBean("userService", UserService.class);
//
//        userService1.sayHello();
//        userService2.sayHello();
//        userService3.sayHello();
//        UserRepository userRepository = (UserRepository) context.getBean("userRepository");
//        userRepository.doRepo();
//        UserComponent userComponent = context.getBean(UserComponent.class);
//        userComponent.doComponent();
//        UserConfig userConfig = context.getBean(UserConfig.class);
//        userConfig.doConfig();
//
//        BeanConfig beanConfig = context.getBean(BeanConfig.class);
//        System.out.println(beanConfig.user());
//        UserInfo userInfo = context.getBean(UserInfo.class);
//        System.out.println(userInfo);
//        UserInfo userInfo = (UserInfo) context.getBean("user");
//        UserInfo userInfo2 = (UserInfo) context.getBean("user2");
//        System.out.println(userInfo);
//        System.out.println(userInfo2);
        UserController userController = context.getBean(UserController.class);
        userController.sayHello();
//        UserController2 userController =context.getBean(UserController2.class);
//        userController.sayHello();
//        UserController3 userController3 = context.getBean(UserController3.class);
//        userController3.sayHello();

    }

}
